home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 2.iso / dist / fw_hp2xx.idb / usr / freeware / info / hp2xx.info.z / hp2xx.info
Text File  |  2001-10-09  |  64KB  |  1,579 lines

  1. This is hp2xx.info, produced by makeinfo version 4.0 from hp2xx.texinfo.
  2.  
  3. START-INFO-DIR-ENTRY
  4. * HP2XX:(hp2xx).  Conversion of HP-GL graphics into raster and
  5.                   vector graphics formats
  6. END-INFO-DIR-ENTRY
  7.    This file documents the HP-GL converter HP2XX
  8.  
  9.    This is Edition 1.2, September 2000, of `Using HP2XX: A HP-GL
  10. Converter'.
  11.  
  12.    Copyright (C) 1998 - 2000 Martin Kroeker Copyright (C) 1992 - 1994
  13. Heinz W. Werntges
  14.  
  15.    Permission is granted to make and distribute verbatim copies of this
  16. manual provided the copyright notice and this permission notice are
  17. preserved on all copies.
  18.  
  19.    Permission is granted to copy and distribute modified versions of
  20. this manual under the conditions for verbatim copying, provided also
  21. that the accompanying file named COPYING which contains the "GNU
  22. General Public License" is included exactly as in the original, and
  23. provided that the entire resulting derived work is distributed under
  24. the terms of a permission notice identical to this one.
  25.  
  26.    Permission is granted to copy and distribute translations of this
  27. manual into another language, under the above conditions for modified
  28. versions, except that the abovementioned file COPYING containing the
  29. "GNU General Public License" may be included in a translation approved
  30. by the Free Software Foundation instead of in the original English.
  31.  
  32. 
  33. File: hp2xx.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
  34.  
  35. HP2XX, a HP-GL Converter
  36. ************************
  37.  
  38.    This file describes HP2XX, a converter of HP-GL plotter data into
  39. some vector and raster formats
  40.  
  41.    This is Edition 1.2, September 2000, for HP2XX Version 3.4.x
  42.  
  43. * Menu:
  44.  
  45. * Introduction::
  46. * Basics::
  47. * Advanced subjects::
  48. * Installation and modification notes::
  49. * Appendix A::                          Known HP-GL commands
  50. * Appendix B::                          Option summary
  51. * Appendix C::                          Acknowledgement, Copyright notice
  52.  
  53. 
  54. File: hp2xx.info,  Node: Introduction,  Next: Basics,  Prev: Top,  Up: Top
  55.  
  56. Introduction
  57. ************
  58.  
  59. * Menu:
  60.  
  61. * Invoking hp2xx::          How to run hp2xx
  62. * HP2XX for the impatient:: Learning to use hp2xx by examples
  63.  
  64.    The `hp2xx' program is a versatile tool to convert vector-oriented
  65. graphics data given in Hewlett-Packard's HP-GL plotter language into a
  66. variety of popular both vector- and raster-oriented graphics formats.
  67.  
  68.    The various supported output formats include Encapsulated PostScript
  69. (EPS), PCX, IMG, and several formats intended to facilitate the
  70. generation of graphics within TeX documents.  In addition, `hp2xx'
  71. output is printable on the HP Laserjet/Deskjet printer series, and it
  72. may be used as a HP-GL previewer on many platforms, e.g. X11 and DOS
  73. (VGA).
  74.  
  75.    `hp2xx' first converts all HP-GL data into pure vectors and buffers
  76. them internally. It then converts these vectors into a specified output
  77. format (vector modes), or rasterizes them (raster modes) on an internal
  78. bitmap. In raster modes, `hp2xx' then translates the bitmap into the
  79. output format.
  80.  
  81. 
  82. File: hp2xx.info,  Node: Invoking hp2xx,  Next: HP2XX for the impatient,  Up: Introduction
  83.  
  84. Invoking `hp2xx'
  85. ================
  86.  
  87.    The format of the `hp2xx' command is:
  88.  
  89.      hp2xx [OPTIONS] [INPUT-FILE(S)]
  90.  
  91.    It follows the UNIX System V tradition of a filter, i. e., options
  92. begin with `-', followed by a single letter and an optional parameter.
  93. Options must appear immediately behind the program name and before the
  94. input file name(s) (if specified). If no input file is given, `hp2xx'
  95. reads from `stdin'. In addition to this traditional option handling,
  96. `hp2xx' also supports GNU-style long options and option/non-option
  97. permutation (*note Appendix B::). However, throughout this manual all
  98. examples will only display short options.
  99.  
  100.    `hp2xx' writes to the output file whose name can be specified by
  101. option `-f'. Without option `-f', `hp2xx' generates output file names
  102. from the input names and the selected mode (see option `-m'). `hp2xx'
  103. writes to `stdout' if you supply a dash as output file name like in
  104. `-f-'.
  105.  
  106. 
  107. File: hp2xx.info,  Node: HP2XX for the impatient,  Prev: Invoking hp2xx,  Up: Introduction
  108.  
  109. `hp2xx' for the impatient
  110. =========================
  111.  
  112.    This section is intended to give those of you a quick-start who are
  113. quite familiar with traditional UNIX-style programs and with HP-GL and
  114. other graphics formats.  The following examples will give you a good
  115. idea of `hp2xx''s functionality. *Note Appendix B:: for further details.
  116.  
  117.      hp2xx foo.hp
  118.  
  119.    Preview of HP-GL graphics in file `foo.hp'. The picture will fit
  120. into a square of 200 mm width, assuming that your output device
  121. (screen) features 75 DPI resolution (default).
  122.  
  123.      hp2xx -q -d86 -h160 -w220  foo.hp bar.hp
  124.  
  125.    Multiple-file preview. Option `-q' puts `hp2xx' into "quiet" mode.
  126. The picture will fit into a rectangle of 220 mm width and 160 mm height,
  127. assuming a 86 DPI resolution of the output device (screen).
  128.  
  129.      hp2xx -t -c12340567 -p12230412 foo.hp
  130.  
  131.    Preview, size according to original HP-GL data (as on a plotter),
  132. with different pen colors and sizes. Color and width according to:
  133.        `Pen # : Color code     / Size (pixel)'
  134.        `-------------------------------------'
  135.        `  1   : 1 (black)      /    1'
  136.        `  2   : 2 (red)        /    2'
  137.        `  3   : 3 (green)      /    2'
  138.        `  4   : 4 (blue)       /    3'
  139.        `  5   : 0 (background) /    0'
  140.        `  6   : 5 (cyan)       /    4'
  141.        `  7   : 6 (magenta)    /    1'
  142.        `  8   : 7 (yellow)     /    2'
  143.  
  144.      hp2xx -m eps -l a.log -h100 -w150 -p542  foo.hp bar.hp
  145.    Encapsulated Postscript mode. Files `foo.eps' and `bar.eps' will be
  146. created. The diagnostic output will be written into `a.log', so `hp2xx'
  147. works quietly. Both EPS pictures will fit into a rectangle of size 150
  148. x 200 mm. The size (width) of pen 1: 0.5 mm, pen 2: 0.4 mm, pen 3: 0.2
  149. mm, pen 4 ... pen 8: 0.1 mm.
  150.  
  151.      unix% cat foo.hp | hp2xx -m pcl -o30 -O50 -i -F -f- | lpr -P ljet
  152.  
  153.    In this generic UNIX example, `hp2xx' reads HP-GL code from `stdin',
  154. converts it to HP-PCL which is suitable for direct output on any HP
  155. Laserjet printer, and pipes the output via `stdout' into the
  156. appropriate printer queue.  Option `-f-' forces `hp2xx' to write to
  157. `stdout' instead of a file, `-i' initializes the printer before the
  158. output, `-F' sends a FormFeed at the end of output. There will be
  159. (additional) 30 mm left and 50 mm top margins. 75 DPI are assumed per
  160. default.
  161.  
  162.      hp2xx -m pcx -f foo3.pcx -d300 -h80 -w150 -r90 -P2:4  foo.hp
  163.    PCX mode. Output goes into file `foo3.pcx'. A limiting rectangle of
  164. 150 x 80 mm at 300 DPI is assumed. The picture will be rotated by 90
  165. degrees. Only pages 2 to 4 of the multi-page HP-GL source is used (each
  166. occurrence of HP-GL code `PG;' increments the internal page counter).
  167.  
  168. 
  169. File: hp2xx.info,  Node: Basics,  Next: Advanced subjects,  Prev: Introduction,  Up: Top
  170.  
  171. Basics
  172. ******
  173.  
  174. * Menu:
  175.  
  176. * Modes of hp2xx::           Selection of the output format
  177. * Sizing your output::       Specifying width, height, page offsets etc.
  178. * Pen sizes and colors::     How to emulate pens of various thickness and color
  179. * Selecting a page (range):: Converting multi-page HP-GL files
  180. * Vector formats::           Further details
  181. * Raster formats::           Controlling the resolution (DPI) etc.
  182. * Printer formats::          Options and restrictions
  183. * Preview::                  Some reminders for the unwary
  184. * Misc. options::            Other bells and whistles
  185.  
  186.    This chapter provides you with almost anything you'll need for
  187. successful `hp2xx' applications. You'll probably soon operate `hp2xx'
  188. by solely consulting the option summary (*note Appendix B::) or just by
  189. calling `hp2xx' without any parameters to obtain its built-in option
  190. summary.
  191.  
  192. 
  193. File: hp2xx.info,  Node: Modes of hp2xx,  Next: Sizing your output,  Up: Basics
  194.  
  195. Modes of `hp2xx'
  196. ================
  197.  
  198.    The mode switch `-m `string'' tells `hp2xx' about the mode it should
  199. use to generate output, i.e., the desired output format. `hp2xx' can
  200. run in three different groups of modes: Generating vector graphics,
  201. raster graphics, or "preview mode", i.e., displaying the graphics.
  202. Preview is the default; *note Appendix B:: for a list of all modes.
  203.  
  204. 
  205. File: hp2xx.info,  Node: Sizing your output,  Next: Pen sizes and colors,  Prev: Modes of hp2xx,  Up: Basics
  206.  
  207. Sizing your output
  208. ==================
  209.  
  210.    NOTE: The basic unit length within `hp2xx' is `mm' (millimeter).
  211. This unit is always assumed except where noted otherwise.
  212.  
  213.    In contrast to a real HP-GL plotter, `hp2xx' lets you decide freely
  214. about the size of the picture. While preserving the picture's aspect
  215. ratio, `hp2xx' will fit the picture into a window of width W and height
  216. H. By default, W = H = 200 (mm). Set these basic sizes using options
  217. `-w W' and `-h H'.
  218.  
  219.    Sometimes you'll want to change the aspect factor of a picture,
  220. e.g., to spread out a square picture into landscape. Option `-a AF' is
  221. used for this. AF > 1 increases x/y ratio, 0 < AF < 1 decreases x/y.
  222.  
  223.    Example: Let's assume your picture covers a native coordinate range
  224. of 100...900 plotter units in x direction and 200...600 in y direction.
  225. Thus, its width is double its height.  Using defaults, `hp2xx' will
  226. create a picture of size 200 x 100 mm, while options `-w 100 -h 40'
  227. will lead to a picture of size 80 x 40 mm, and `-w 100 -h 40 -a 0.5'
  228. results in a 40 x 40 mm picture.
  229.  
  230.    Alternatively, ignore explicit size control and rely on the true
  231. HP-GL coordinates (and therefore: sizes) of the given input file(s).
  232. Flag `-t' inhibits `-a -h -w' and lets `hp2xx' use true HP-GL sizes,
  233. based on the assumption that 1 HP unit = 1/40 mm.
  234.  
  235.    Some modes of `hp2xx' support page offsets, i.e., left and upper
  236. margins added to the picture, probably in addition to some hard margins
  237. which cannot be avoided. Currently, these modes are EPS, PCL, and PRE.
  238. The left margin (offset) is modified with option `-o OFF_LEFT', while
  239. the upper margin can be controlled via `-O OFF_UPPER'. OFF_LEFT and
  240. OFF_UPPER are specified in mm.
  241.  
  242.    Option `-C' (center the picture) works in combination with options
  243. `-o -O' by modifying the offsets in such a way that the resulting
  244. picture is centered within the frame defined by options `-w -h'.
  245. Example: Assume that the picture is a square, and `-w 100 -h 40' are
  246. specified. A 40 mm square with an additional left margin of (100-40)/2
  247. = 30 mm will be produced if option `-C' is given.  If the actual
  248. width/height ration of the picture exactly matches the ratio defined by
  249. `-w -h', option `-C' has no effect.
  250.  
  251. 
  252. File: hp2xx.info,  Node: Pen sizes and colors,  Next: Selecting a page (range),  Prev: Sizing your output,  Up: Basics
  253.  
  254. Pen sizes and colors
  255. ====================
  256.  
  257.    Imagine a plotter with a pen carousel, e.g., like the model HP7550A.
  258. The carousel carries a (small) number of pens. Their colors and tip
  259. thicknesses (sizes) are selected by a human operator, while the plotter
  260. only receives commands like "Now use pen number 5". If you don't
  261. provide a pen, the plotter will move and "draw" without this pen if its
  262. number is selected.
  263.  
  264.    `hp2xx' emulates a carousel of up to 8 pens of various colors and
  265. sizes.  By default, all pens are present, have FOREGROUND color
  266. (typically BLACK), and their tip thicknesses are one unit (here: 1/10
  267. `mm' for vector modes, 1 pixel for raster modes).  HPGL/2 commands
  268. NP,PC,PW may override this for up to 255 freely configurable pens.
  269.  
  270.    Pen colors and sizes are represented by digits to allow for a compact
  271. option list. There are 8 colors including BACKGROUND (usually white).
  272. *Note Appendix B:: for a list of all colors. E.g., color 3 is green,
  273. and color 7 means yellow. Permitted pen sizes are 0 ... 9 units.
  274. WARNING: In raster modes, all pen sizes are approximated by double,
  275. triple, etc. width, and lines wider than 4 will probably not give
  276. useful results.
  277.  
  278.    Options `-c C-STRING' and `-s S-STRING' tell `hp2xx' about the pens
  279. to be placed in the carousel.  C-STRING and S-STRING are strings of 1
  280. to 8 digits, corresponding to special choices of pen 1 to 8.  Defaults
  281. are C-STRING = S-STRING = `11111111' unless the hpgl file contains
  282. corresponding PC and/or PW commands. Specifying `-c' or `-s' overrides
  283. the equivalent HPGL/2 command.  If you specify less than 8 pens, the
  284. remaining pens keep their defaults.
  285.  
  286.    Examples:
  287.      hp2xx -p13 foo.hp
  288.    Show a preview of `foo.hp', drawing all lines with pen #2 three
  289. pixels wide instead of default 1 pixel, which applies to all other pens.
  290.  
  291.      hp2xx -c12740 -p12230412 foo.hp
  292.    Here, pen #5 is "removed". Pens #1 and #7 keep their default sizes,
  293. all others are set to various sizes.  Pen #2 is red, #3 is yellow, and
  294. #4 is blue, while all other pens keep `foreground' color, e.g., black.
  295.  
  296.    If your HP-GL file contains the PC and/or PW commands introduced with
  297. HP-GL/2, these are interpreted to allow up to 255 pens. The special case
  298. where a pen is redefined to take on different colors is currently only
  299. supported in PostScript output mode. In all other modes, the last PC
  300. command encountered determines that pens' color for the entire plot.
  301.  
  302. 
  303. File: hp2xx.info,  Node: Selecting a page (range),  Next: Vector formats,  Prev: Pen sizes and colors,  Up: Basics
  304.  
  305. Selecting a page
  306. ================
  307.  
  308.    There is a HP-GL command named `PG;' which amounts to a FormFeed.
  309. Thus, there are multi-page HP-GL sources. While `hp2xx' was designed
  310. for just one output picture per input file, there is a simple way to
  311. cope also with multi-page sources:
  312.  
  313.    `hp2xx' keeps track of the number of encountered `PG;' commands.
  314. All code up to the next (if any) `PG;' command is considered a single
  315. page. Pages are counted, starting at 1. You can ask `hp2xx' to ignore
  316. all HP-GL commands other than on page N with option `-P N', effectively
  317. filtering out any one-page graphics.  Sometimes, converting a whole
  318. page range makes sense, too. Therefore, `hp2xx' also accepts page
  319. ranges via `-P N1:N2'.  The default is `-P 0' which selects all pages.
  320.  
  321.    WARNING: Some HP-GL sources may start with a `PG;' so the first page
  322. of your graphics may be 2 instead of 1. Look for the number of
  323. encountered pages in the diagnostic output if you miss the expected
  324. page!  If the detected coordinate range shows unreasonable numbers like
  325. 1e10, you'll be probably looking at an empty page.
  326.  
  327. 
  328. File: hp2xx.info,  Node: Vector formats,  Next: Raster formats,  Prev: Selecting a page (range),  Up: Basics
  329.  
  330. Vector formats
  331. ==============
  332.  
  333.    All HP-GL graphics are decomposed by `hp2xx' into elementary move
  334. and draw commands. Selecting a vector mode essentially defines the
  335. conversion rules of such commands into specific formats.
  336.  
  337.    The most popular and versatile vector format currently is
  338. Encapsulated PostScript (EPS). (In fact, it is much more than just a
  339. vector graphics format, but `hp2xx' uses only EPS's line drawing
  340. features.) Many programs allow importation of EPS files, and PostScript
  341. gives excellent printing results, so `-m `eps'' is highly recommended.
  342.  
  343.    Unix users may also want to use either `Gnuplot' or especially `XFig'
  344. to annotate their plots. The native formats of these programs are
  345. directly supported via the `-m `gpt'' and `-m `fig'' options.
  346.  
  347.    Currently, all other supported vector formats represent various
  348. compromises to persuade TeX or LaTeX into the generation of graphics.
  349. *Note TeX formats::, if you are specially interested in TeX.
  350.  
  351. 
  352. File: hp2xx.info,  Node: Raster formats,  Next: Printer formats,  Prev: Vector formats,  Up: Basics
  353.  
  354. Raster formats
  355. ==============
  356.  
  357.    Raster graphics are probably the most widely used graphics by now.
  358. Many publishing programs accept rasterized graphics. It's likely you'll
  359. use `hp2xx' primarily in some raster mode.
  360.  
  361.    In addition to vector modes, all raster modes need the desired
  362. resolution of an assumed underlying pixel grid to plot on, i. e., the
  363. number of pixels per unit length within that grid.  A traditional
  364. measure is the number of "dots per inch" (DPI).  `hp2xx' makes an
  365. exception from its usual unit length `mm' and lets you specify the
  366. traditional DPI values.  Option `-d NUM' affects both x and y
  367. direction, NUM being the DPI value (an integer). if `-D NUM_Y' is also
  368. specified, NUM_Y will override the NUM DPI value, but only for the y
  369. direction.
  370.  
  371.    There are plenty of raster formats on various platforms, much more
  372. than `hp2xx' will ever handle. The supported raster formats IMG,
  373. PBM/PPM, PCL, PCX, PNG and TIFF were chosen for their widespread use,
  374. their simplicity, for actual demand, and for accessibility of
  375. specifications.  If your desired format is not supported, look for a
  376. converter. E.g., the Portable Bitmap (PBM) project and more recently,
  377. the ImageMagick package offer quite a variety of such converters.
  378.  
  379.    Please note that the preview mode (which does not create any output
  380. file) is a special raster mode. Instead of going into some output file,
  381. the internal bitmap is transferred into display memory.  Therefore, the
  382. above considerations apply also to preview mode.
  383.  
  384. 
  385. File: hp2xx.info,  Node: Printer formats,  Next: Preview,  Prev: Raster formats,  Up: Basics
  386.  
  387. Printer formats
  388. ===============
  389.  
  390.    Currently, there is only one well-tested printer format (not
  391. counting `eps', which is printable on PostScript printers): `pcl',
  392. which stands for HP PCL Level 3. Essentially it is a raster format, but
  393. it comes with a few restrictions and additional options which
  394. correspond to printer properties.  It prints on HP Laserjet and HP
  395. Deskjet series printers and compatibles.
  396.  
  397.    The restriction concerns the resolution (DPI) during rasterization.
  398. Due to printer hardware limitations, only `-d 75', `-d 100', `-d 150',
  399. and `-d 300' are recommended (`hp2xx' will emit a warning for other
  400. values, but will try to create the desired output); option `-D' must not
  401. be used. Some recent printer models do support 600, 720 or even higher
  402. resolutions, but even for those the requirements both in terms of cpu
  403. load and file size may be prohibitive.
  404.  
  405.    There are two flags which may be useful if the output goes directly
  406. to a printer: Option `-i' initializes the printer and tries to select
  407. the required paper format before the output starts, and `-F' sends a
  408. FormFeed (ASCII 12) after the output.
  409.  
  410.    For the HP Deskjet printer series, there is support of some "special"
  411. commands; `-S 1' activates these. There is a limited support of color
  412. modes available, too: For the DJ500C and newer models, `hp2xx' can
  413. generate both CMY-based and CMYK-based color output (if colors are used:
  414. see option `-c'). Supply option `-S 3' for CMY color mode, and option
  415. `-S 4' for CMYK color mode (for the DJ550C). The Deskjet modes
  416. automatically invoke TIFF compression (mode 2), while pure PCL Level 3
  417. does not know about compression.
  418.  
  419.    A driver for the Esc/P2 raster language used by the Epson Stylus
  420. series of inkjet printers has been added in `hp2xx-3.4.0'. This should
  421. work at least for the small-format printers at 720 dpi.
  422.  
  423. 
  424. File: hp2xx.info,  Node: Preview,  Next: Misc. options,  Prev: Printer formats,  Up: Basics
  425.  
  426. Preview
  427. =======
  428.  
  429.    Preview mode is `hp2xx''s default. Its use prior to all other
  430. conversions is recommended since it offers a good impression of your
  431. final results. Functionally it is also a raster mode.
  432.  
  433.    Depending on your hardware and operating system platform, `hp2xx'
  434. uses one of a variety of preview modules.  On GUIs, a window containing
  435. the graphics will pop up, while on other systems the whole screen may
  436. be used for preview. You can control the position of a preview window
  437. via options `-o' and `-O' in a natural way. In full-screen previews,
  438. unused spaces are padded to the right and bottom with background color.
  439.  
  440.    Since there is no way for `hp2xx' to predict the actual size and
  441. resolution of your preview device, e.g., screen, you may have to gauge
  442. `hp2xx''s preview mode (using options `-whdD'). For example, if your
  443. device effectively works at 86 DPI and offers an active area of 24 by
  444. 18 cm,
  445.      hp2xx -d86 -w240 -h180 foo.hp
  446.    will make maximum use of your screen area and give you correct sizes.
  447. Since a single gauge will do for all future calls, you'll probably want
  448. to create some one-line batch file for invoking `hp2xx' in preview
  449. mode, correctly gauged for your screen.
  450.  
  451.    Depending on page offsets and the selected sizes and resolutions, a
  452. preview may not fit on your screen. In that case, some preview modules
  453. simply clip the picture; others give a warning but let you continue
  454. (DOS), and others simply terminate -- so don't start too large.
  455.  
  456.    DOS users: Most VGA cards offer high-resolution modes (SVGAs).
  457. Unfortunately, there is no software standard for these modes. `hp2xx'
  458. lets you utilize these modes anyway with just a little help from you.
  459. Tell `hp2xx' the so-called mode byte of your favorite hi-res mode via
  460. option `-V NUM'. Since `hp2xx' issues only standard BIOS calls for mode
  461. switching, setting of color look-up table entries, and pixel drawing,
  462. chances are good that your VGA card's hi-res modes will work!
  463.  
  464.    WARNING: You can damage your hardware by specifying inappropriate
  465. VGA modes!  Generally you'll need a monitor which can sync on the
  466. horizontal frequency of the selected VGA hi-res mode, e.g., a
  467. multi-scan monitor. In case of doubt, switch off your monitor
  468. immediately!!
  469.  
  470. 
  471. File: hp2xx.info,  Node: Misc. options,  Prev: Preview,  Up: Basics
  472.  
  473. Misc. options
  474. =============
  475.  
  476.    `hp2xx' features an on-line options summary. Invoking `hp2xx' with
  477. option `-H', or with any illegal option or without any parameter, will
  478. display about 2 pages of text. (Note: I'd have preferred option `-h'
  479. for on-line help, but this option is needed by the indispensable HEIGHT
  480. parameter.)
  481.  
  482.    During operation, `hp2xx' outputs various information about the
  483. current HP-GL file and about `hp2xx''s actions. As usual, all this goes
  484. to `stderr'. You can re-direct these diagnostics into a file even
  485. without any help from a UNIX shell by specifying a log file using option
  486. `-l LOGFILE', or you may switch off diagnostics completely with option
  487. `-q' (`quiet' mode). NOTE: Using both options as in `-q -l LOGFILE' is
  488. of no use as it will result in an empty LOGFILE.
  489.  
  490.    Finally, there is a simple way to rotate whole pictures: Option `-r
  491. ANGLE' rotates the picture counter-clockwise by the supplied angle
  492. (given in degrees). E.g.,
  493.      hp2xx -r90 foo.hp
  494.    will show the picture rotated by 90 degrees, letting vectors
  495. originally pointing left-to-right now point botttom-to-top. This may be
  496. handy e.g. for printing in landscape format.  NOTE: The limiting
  497. rectangle supplied by `-hw' is not affected by `-r', so in order to
  498. obtain e.g. a full-page landscape picture on an A4 page, issue a
  499. command similar to:
  500.      hp2xx -m pcl -d 150 -r90 -h270 -w160 landscape.hp
  501.  
  502. 
  503. File: hp2xx.info,  Node: Advanced subjects,  Next: Installation and modification notes,  Prev: Basics,  Up: Top
  504.  
  505. Advanced subjects
  506. *****************
  507.  
  508. * Menu:
  509.  
  510. * The coordinate range:: What hp2xx tells you about your HP-GL file
  511. * Fixed scaling::        Define your own window in HP-GL coordinate space
  512. * Scaling to true size:: How to generate pictures in their original sizes
  513. * Swapping::             Some suggestions which you hopefully won't need
  514. * Dots and lines::       Simplifications and assumptions
  515. * Unsupported formats::  The ATARI fraction's favourites
  516. * TeX formats::          The pros and cons
  517.  
  518. 
  519. File: hp2xx.info,  Node: The coordinate range,  Next: Fixed scaling,  Up: Advanced subjects
  520.  
  521. The coordinate range
  522. ====================
  523.  
  524.    The natural unit of length in HP-GL is 1/40 mm = 0.025 mm, so a
  525. typical A4 page covers roughly 11000 x 7500 natural units. Typically,
  526. coordinates in HP-GL commands will be found in the range 0 ... 12000.
  527. `hp2xx' will tell you the maximum and minimum coordinates ("picture
  528. limits") it finds in your HP-GL picture for both x and y direction.
  529. These values usually roughly cover this range.  Even if your HP-GL
  530. source plots in user-specific coordinates (realized via HP-GL command
  531. `SC;' (SCale) ), this remains true, since `hp2xx' internally transforms
  532. all points back to natural coordinates.  Whenever the above range is
  533. grossly violated, you may suspect corrupted data, because no real
  534. plotter would be able to plot such a file.
  535.  
  536.    If you ever discover a picture limit equalling plus or minus 10^10,
  537. your HP-GL probably didn't draw anything. Initially, `hp2xx''s internal
  538. picture limits are set to impossibly large (or small) values, i. e., +-
  539. 10^10, but the first plot command will set them to values found
  540. therein, and successive plots push the limits outward. Example: XMAX
  541. starts at -10^10, the first plot command may change it to 2536, the
  542. next to 3470, the next 20 command fall short, etc. Eventually, XMAX
  543. assumes the largest value and stays there. Knowledge about these
  544. details may sometimes be crucial (*note Scaling to true size::).
  545.  
  546.    `hp2xx' uses the picture limits internally for scaling and fitting
  547. the data into the supplied  limiting rectangle (*note Sizing your
  548. output::).  You can also affect the picture limits yourself for special
  549. effects (*note Fixed scaling::).
  550.  
  551. 
  552. File: hp2xx.info,  Node: Fixed scaling,  Next: Scaling to true size,  Prev: The coordinate range,  Up: Advanced subjects
  553.  
  554. Fixed scaling
  555. =============
  556.  
  557.    As noted earlier, `hp2xx' does not draw to scale, but rather it fits
  558. a picture into a given limiting window. While this is very handy in most
  559. applications, it may be undesirable when a series of pictures must be
  560. drawn to the same scale. Unless all pictures possess the same picture
  561. limits (modulo offsets), e.g., because all of them are surrounded by
  562. some fixed frame, `hp2xx' would scale them all up differently to fit
  563. each of them tightly into the limiting window.
  564.  
  565.    There are two simple cures: First, make use of the true size option
  566. `-t'.  If the original HP-GL sizes do not fit, adjust picture limits to
  567. guarantee a constant scaling: Make a preview of all pictures and note
  568. the coordinate ranges `hp2xx' reports. Then, determine picture limits
  569. which cover all of these individual limits. Finally, run `hp2xx' to
  570. create your desired outputs using options `-xXyY' to tell `hp2xx' about
  571. the picture limits it should use. If the pictures do not share common
  572. offsets, you may have to correct for offsets manually. Use the preview
  573. mode for testing. You'll get the same scale as long as the limiting
  574. window and (XMAX - XMIN) and (YMAX - YMIN) remain constant for all
  575. pictures.
  576.  
  577.    WARNING: `hp2xx' does not clip lines. If the picture limits which
  578. you manually can pre-set via options `-xXyY' are chosen too narrow,
  579. they will be pushed outside just as described in the last section,
  580. resulting in a different scale. Check the coordinate ranges `hp2xx'
  581. reports. The should match the values supplied by options `-xXyY'!
  582.  
  583. 
  584. File: hp2xx.info,  Node: Scaling to true size,  Next: Swapping,  Prev: Fixed scaling,  Up: Advanced subjects
  585.  
  586. Scaling to true size
  587. ====================
  588.  
  589.    Earlier releases of `hp2xx' (binaries) did not offer option `-t',
  590. which does everything you'll need for producing output with exactly the
  591. sizes shown on a real plotter. The following paragraph shows how to
  592. manually emulate the working of this option. Though outdated, I left it
  593. in the manual as background material:
  594.  
  595.    Sometimes you might want to create pictures sized exactly as if they
  596. were drawn on a real plotter. There is a little trick which allows you
  597. to do so using `hp2xx': As notes above, the natural unit of length in
  598. HP-GL is 0.025 mm. Therefore, you can calculate the true picture size
  599. from the picture limits reported by `hp2xx'. Transform these data into
  600. mm and simply specify the limiting window accordingly!  Example: `hp2xx
  601. truesize.hp' reports the following coordinate ranges: XMIN = 250, XMAX
  602. = 5250, YMIN = 100, YMAX = 3100.  Thus, the picture is (XMAX - XMIN) *
  603. 0.025 mm = 125 mm wide and YMAX - YMIN) * 0.025 mm = 75 mm high, and
  604. `hp2xx -w125 -h75 truesize.hp' will draw it in true size.
  605.  
  606. 
  607. File: hp2xx.info,  Node: Swapping,  Next: Dots and lines,  Prev: Scaling to true size,  Up: Advanced subjects
  608.  
  609. Swapping
  610. ========
  611.  
  612.    `hp2xx' allocates memory for an internal bitmap dynamically.  Large
  613. pictures, high resolution, and use of colors may combine to let your
  614. computer run out of memory (especially on non-swapping operating
  615. systems like DOS).
  616.  
  617.    In this case, `hp2xx' swaps the bitmap to disk, slowing down
  618. considerably. Redirecting swapping to a fast disk, preferably a RAM
  619. disk, might speed up things. You can replace the default swap file
  620. `hp2xx.swp' using `-s `swapfile''.  NOTE: If for some reason `hp2xx' is
  621. aborted during swapping, you might have to delete the swap file
  622. manually.
  623.  
  624. 
  625. File: hp2xx.info,  Node: Dots and lines,  Next: Unsupported formats,  Prev: Swapping,  Up: Advanced subjects
  626.  
  627. Dots and lines
  628. ==============
  629.  
  630.    Here are some basics about the generation of dots and lines within
  631. `hp2xx'. I mention them, because there is something left to be improved
  632. here...
  633.  
  634.    Some HP-GL codes cause `hp2xx' to generate points rather than lines
  635. of length zero. There is a subtle difference between both. Depending on
  636. the current output format, special code for points will be generated,
  637. and occasionally, a point will look different from a zero-length line.
  638. Use `-m epic' for such an example.
  639.  
  640.    Line thicknesses can vary. Especially for thick lines, the matter of
  641. line caps (how lines are ended, e.g. with a round cap) becomes relevant.
  642. `hp2xx' does not do an elaborate job here. If line caps matter to you,
  643. use `-m eps', edit the resulting Encapsulated PostScript file, look for
  644. a line with `setlinecap' in it (near line 45), and select the line cap
  645. of your choice by modifying the PostScript command `setlinecap'
  646. accordingly. You can also use Metafont (via `-m mf') and replace the
  647. picked pen "pencircle" by some other type. However, both methods are
  648. far from convenient.
  649.  
  650.    The internal rasterization done by `hp2xx' is a simple process and
  651. may someday be replaced by something more efficient: A "draw point"
  652. command essentially sets a single pel in the internal buffer.  If line
  653. width grows (2 - 4 units), a square of 2 to 4 pels length will be set.
  654. Vector drawing is broken down to point drawing by the Bresenham
  655. algorithm. Therefore, there is no notion of controlled line caps. The
  656. shapes of line ends simply result from plotting these squares.  In
  657. addition, plotting all those pels is not really efficiently implemented,
  658. so if anybody out there looks for a good place for speeding up `hp2xx',
  659. this code (located in file `picbuf.c') is a good place to start.
  660.  
  661.    Currently there are no plans by me to introduce different line caps
  662. into `hp2xx', so waiting for them will be of no use.
  663.  
  664. 
  665. File: hp2xx.info,  Node: Unsupported formats,  Next: TeX formats,  Prev: Dots and lines,  Up: Advanced subjects
  666.  
  667. Unsupported formats
  668. ===================
  669.  
  670.    This is just a brief note, not a real manual entry - sorry.
  671. `PIC'
  672.          ATARI format, e.g. for the text processor Signum. Try to replace
  673.      by IMG.
  674.  
  675. `PAC'
  676.          ATARI format, e.g. for the CAD program STAD
  677.  
  678. `DJ_GR'
  679.          DOS previewer, based on DJ Delorie's gcc port and extender go32.
  680.      Works fine, but will be replaced by DOS/OS2 EMX version.
  681.      Abandoned by new maintainer due to lack of platform - volunteers
  682.      welcome.
  683.  
  684. `OS2'
  685.          Full-screen OS/2 2.x and DOS previewer. HWW: I don't yet have the
  686.      right development system, so this code is still missing.
  687.      MK: Any volunteers ?
  688.  
  689. `PM'
  690.          OS/2 2.0 PM previewer. Working, but without redirection of
  691.      messages to stderr into a second window. Volunteers needed to     keep
  692.      OS/2 support up to date in new versions.
  693.  
  694. 
  695. File: hp2xx.info,  Node: TeX formats,  Prev: Unsupported formats,  Up: Advanced subjects
  696.  
  697. TeX  formats
  698. ============
  699.  
  700.    TeX  was designed for typesetting, not for handling graphics. Putting
  701. graphics directly into TeX  therefore is always somewhat clumsy.
  702. `hp2xx' offers four different compromises to do that, and much better,
  703. though more indirect ways.
  704.  
  705.    `-m `mf'' generates Metafont source code. Run `Metafont' and
  706. `gftopk', and you'll end up with a special `pk' font containing the
  707. single letter Z which represents your picture. Placing this Z somewhere
  708. in your document using standard TeX  commands draws your picture there.
  709.  
  710.    If you want to avoid fiddling with additional programs and fonts, if
  711. you work with LaTeX, and if you do not need high-quality plots, the
  712. macros within `epic.sty' may help you.  `-m `tex'' causes `hp2xx' to
  713. generate appropriate TeX source code which you can `\input{}' into
  714. LaTeX sources.
  715.  
  716.    For emTeX users, there are yet another two way: `-m `em'' creates
  717. TeX code containing many commands like `\special{em:...}' for line
  718. drawing. The line drawing task will therefore be handled not by TeX
  719. itself but by the emTeX drivers which can handle arbitrary line slopes
  720. etc. Similarly, `-m `cad'' produces code based on the same principle,
  721. but compatible with program `TeXcad.exe', which is distributed as a
  722. part of emTeX, and which offers editing and drawing features for the
  723. desired HP-GL figure(s).
  724.  
  725.    Please note that all methods for generation of graphics WITHIN TeX
  726. are compromises which usually work only for simple graphics.  You'll
  727. probably prefer using external methods like including EPS vector
  728. graphics files with Tom Rokicki's `dvips' driver, or PCX files via the
  729. emTeX drivers, or you'll generate special fonts with convenient
  730. programs like F. Sowa's `bm2font'. `hp2xx' can help you in all of these
  731. cases. The following table shows the pros and cons of the various
  732. approaches (all are based on PD software):
  733.  
  734.      Internal methods (all allowing DVI previewing of graphs):
  735.      
  736.      via Metafont
  737.        `+:' Machine-independent; fully compatible with TeX
  738.        `-:' Slow; capacity problems with Metafont / gftopk / some DVI drivers
  739.                  if used with large and/or complex graphics
  740.      
  741.      via `epic.sty'
  742.        `+:' Machine-independent; single-step, native LaTeX approach; PD software
  743.        `-:' Slow; requires LaTeX; low-quality lines; just one line thickness;
  744.                  complex graphs may exceed TeX capacity
  745.      
  746.      via emTeX's `\special{em:...}'
  747.        `+:' No TeX capacity problem; good line quality; single-step procedure;
  748.                  rasterization on demand, giving optimal resolution
  749.        `-:' Slows down drivers; driver capacity may be exceeded; emTeX required
  750.      
  751.      
  752.      External methods:
  753.      
  754.      via PCX file inclusion:
  755.        `+:' Easy and fast; DVI preview of graphics
  756.        `-:' Requires emTeX drivers (only available on DOS and OS/2)
  757.      
  758.      via special fonts:
  759.        `+:' Easy, fast, and trouble-free font generation via `bm2font';
  760.                  DVI preview of graphics (!); portable
  761.        `-:' Many files for fonts etc.; confusing for novices
  762.      
  763.      via EPS:
  764.        `+:' High-quality results; easy; no burden for TeX or drivers
  765.        `-:' No DVI preview; PostScript printer (or, e.g., GhostScript) required;
  766.                  PostScript previewing is slower than DVI previewing.
  767.  
  768. 
  769. File: hp2xx.info,  Node: Installation and modification notes,  Next: Appendix A,  Prev: Advanced subjects,  Up: Top
  770.  
  771. Installation and modification notes
  772. ***********************************
  773.  
  774. * Menu:
  775.  
  776. * Installation procedure::
  777. * Modules of hp2xx::       The general structure, and how to add your own format
  778. * Future improvements::    Volunteers wanted!
  779. * Font coding::
  780.  
  781. 
  782. File: hp2xx.info,  Node: Installation procedure,  Next: Modules of hp2xx,  Up: Installation and modification notes
  783.  
  784. Installation procedure
  785. ======================
  786.  
  787.    Please note: The following description is very brief and assumes
  788. that you are familiar with installation of PD software in general.
  789.  
  790. * Menu:
  791.  
  792. * Installation of run-time versions::
  793. * Source-level installation::
  794.  
  795. 
  796. File: hp2xx.info,  Node: Installation of run-time versions,  Next: Source-level installation,  Up: Installation procedure
  797.  
  798. Installing an executable version
  799. --------------------------------
  800.  
  801.    This is simple! If you find a collection of pre-compiled versions of
  802. `hp2xx', obtain the file `read.me' and read it to find out the name of
  803. the file which fits to your system. Obtain it, rename it to something
  804. like `hp2xx' or `hp2xx.exe', and place it somewhere on your search path
  805. - that's it.
  806.  
  807.    However, since the source release of `hp2xx' under the GNU public
  808. license, the usual mode of installation has become configuring and
  809. building `hp2xx' on your own system. This is detailed in the next
  810. section.
  811.  
  812. 
  813. File: hp2xx.info,  Node: Source-level installation,  Prev: Installation of run-time versions,  Up: Installation procedure
  814.  
  815. Source-level installation
  816. -------------------------
  817.  
  818.    NOTE: I am tempted to switch to GNU autoconf , i.e. have a configure
  819. script generate the necessary Makefile automagically. This will probably
  820. not be welcomed by those not on Unix-like platforms, however.
  821. Currently, installation depends too much on manual work yet. Here is a
  822. description how to proceed:
  823.  
  824.    After unbundling all sources, go to subdirectory `./makes'. Select a
  825. makefile most closely resembling your system's needs from the samples
  826. given, copy it to `./sources/makefile', adapt it manually (if
  827. necessary), and run `make all'.  If everything is set correctly, this
  828. results directly in a valid executable file which you may install at
  829. any convenient place on your search path.
  830.  
  831.    There are two types of makefile adaptation: First, let's assume there
  832. is a makefile template available for your system. You then have the
  833. option to add a few unsupported modes. Do so by un-commenting the
  834. appropriate lines near the beginning of the makefile, and by commenting
  835. out the corresponding standard lines.
  836.  
  837.    The second type of course applies to systems with special needs
  838. which are not yet covered by any makefile template. Currently, you are
  839. on your own when it comes to supplying alternate paths, renaming or
  840. adding system libraries and alike. Most probably you might have to tell
  841. the makefile where to look for the X11 stuff, and where to find the png
  842. library, if at all.
  843.  
  844.    Note: Don't feel alarmed if your makefile seems to neglect many
  845. source files.  Any single installation will make use of only one
  846. previewer (two on SUNs with activated SunView support), and there are
  847. platform-dependent sources for some output formats which are not always
  848. used.
  849.  
  850.    Users wishing to compile `hp2xx' on MS Windows systems will find a
  851. step-by-step procedure in the file `hp2xx_nt' in the documentation
  852. directory.
  853.  
  854. 
  855. File: hp2xx.info,  Node: Modules of hp2xx,  Next: Future improvements,  Prev: Installation procedure,  Up: Installation and modification notes
  856.  
  857. Adding your own formats
  858. =======================
  859.  
  860.    First, study *Note Introduction:: for the outline of the modular
  861. structure and general operation of `hp2xx'.
  862.  
  863.    Let's assume you want to support TIFF format. The probably easiest
  864. way of adding new formats is by modifying copies of existing files.
  865. Since TIFF is a raster format, a good starting point would be
  866. `to_pcx.c'.  (Files `to_mf.c' or `to_eps.c' should be considered in case
  867. of a vector format, and `to_vga.c' or `to_x11.c' in case of a new
  868. previewer.) Copy it to a file `to_tiff.c' and edit the latter.  The old
  869. code is pretty much self-explanatory. Essentially, the output file is
  870. opened, initializations are performed, and the internal bitmap is
  871. converted into the target format (here, TIFF) scanline-by-scanline.
  872. There is just one routine called from other modules (originally named
  873. `PicBuf_to_PCX'. Rename it to e.g. `PicBuf_to_TIFF' ) and adapt the
  874. conversion code.
  875.  
  876.    Once you've done that, the rest (integration of the new format into
  877. the package) is easy: First, edit `hp2xx.h' and add a prototype line
  878. for `PicBuf_to_TIFF' in analogy to e.g., `PicBuf_to_PCX'.  Edit the
  879. `makefile's and add `to_tiff.c' to the list of sources and e.g.
  880. `to_tiff.o' to the list of objects. Now you are ready for compilation
  881. tests (but not for linking yet).
  882.  
  883.    Then, change the main file `hp2xx.c' at various places: Near the
  884. beginning of the file, add `XX_TIFF, ' to the `hp2xx_mode' typedef, and
  885. a line like `XX_TIFF,   "tiff", ' to the `ModeList' struct below.
  886. Please note the alphabetical order of these lists. Never put anything
  887. behind the termination code `XX_TERM'! At the end of the file, add a
  888. `case' statement to the `switch' list in analogy to e.g.  the `PCX'
  889. entry.
  890.  
  891.    You may also want to add a line to the on-line help to announce the
  892. new format, and change the release number and date.  Look for functions
  893. `Send_ID' and `usage_msg' at the first quarter of file `hp2xx.c'!
  894.  
  895.    Now a `make all' will produce code containing the new format.  If
  896. your format turns out to work nicely and seems to be of general
  897. interest, please consider contributing it to the `hp2xx' project.
  898.  
  899. 
  900. File: hp2xx.info,  Node: Future improvements,  Next: Font coding,  Prev: Modules of hp2xx,  Up: Installation and modification notes
  901.  
  902. Future improvements
  903. ===================
  904.  
  905.    The following table lists miscellaneous desirable features for future
  906. releases:
  907.        Box and sector drawing / filling
  908.        Other, more rarely used HP-GL commands
  909.        Color support in UIS
  910.        PCL: Better data compression for DJ500, DJ500C, DJ550;
  911.        Loadable fonts, e.g. Hershey fonts, or: more built-in fonts
  912.        Full-screen previewer for OS/2
  913.        Easy installation on various platforms, e.g. via a configure script
  914.  
  915. 
  916. File: hp2xx.info,  Node: Font coding,  Prev: Future improvements,  Up: Installation and modification notes
  917.  
  918. Font coding
  919. ===========
  920.  
  921.    This section is intended for those few users who might care to
  922. improve the built-in character set of `hp2xx'.
  923.  
  924.    HP-GL plotters feature built-in fonts with both fixed and
  925. variable-width characters. There are commands for font selection and
  926. quick switching between two pre-selected fonts, and there is also a way
  927. for users to download own character definitions.
  928.  
  929.    `hp2xx' currently features just a few fixed-width  character sets
  930. (sets 0-7).
  931.  
  932.    If you plan to modify these characters set or to add more, you need
  933. an understanding of how characters are drawn by `hp2xx'. The source
  934. file `charset.h' contains a comment explaining this procedure. Below
  935. you find a (modified) copy of this:
  936.  
  937.       This file defines a standard character set by elementary
  938.       "draw" & "move" commands. The format is a very compact one from
  939.       the old days where every byte was still appreciated.
  940.      
  941.       A font or character set is an array of strings. Each character is
  942.       addressed by its ASCII code.
  943.      
  944.       A character is a (NULL-terminated) string of bytes. Each byte
  945.       codes for a draw or move action according to the code below:
  946.      
  947.           `Bit: 7 6 5 4 3 2 1 0'
  948.           `     p x x x y y y y'
  949.      
  950.       `p:   ' Plot flag. If set, "draw to" new point, else "move to" it.
  951.       `xxx: ' 3-bit unsigned integer  (0...7). X coordinate of new point.
  952.       `yyyy:' 4-bit unsigned integer (0..15). Y coordinate of new point.
  953.      
  954.       The baseline is y = 4 instead of y = 0, so characters with parts
  955.       below it can be drawn properly. Function "code_to_ucoord" transforms
  956.       these coordinates into actual user coordinates.
  957.      
  958.       Example:  code for character `'L': "\032\224\324"' translates to:
  959.                 `moveto(1,10); drawto(1,4); drawto(5,4);'
  960.      
  961.      
  962.       From the example you can conclude that the font below essentially is
  963.       defined on a 5x7 grid:
  964.      
  965.           `    0 1 2 3 4 5 6 7'
  966.           `15  - - - - - - - -     - : unused'
  967.           `14  - - - - - - - -     # : always used'
  968.           `13  - - - - - - - -     o : sometimes used'
  969.           `12  - - - - - - - -'
  970.           `11  - - - - - - - -'
  971.           `10  o # # # # # - -'
  972.           ` 9  o # # # # # - -'
  973.           ` 8  o # # # # # - -'
  974.           ` 7  o # # # # # - -'
  975.           ` 6  o # # # # # - -'
  976.           ` 5  o # # # # # - -'
  977.           ` 4  o # # # # # - -'
  978.           ` 3  o o o o o o - -'
  979.           ` 2  o o o o o o - -'
  980.           ` 1  o o o o o o - -'
  981.           ` 0  o o o o o o - -'
  982.  
  983. 
  984. File: hp2xx.info,  Node: Appendix A,  Next: Appendix B,  Prev: Installation and modification notes,  Up: Top
  985.  
  986. Known HP-GL commands
  987. ********************
  988.  
  989.    `hp2xx' originally emulated a subset of the Hewlett-Packard 7550A
  990. plotter.  The following manual was used as reference for command
  991. definitions: `[1] HP 7550A Interfacing and Programming Manual'. This
  992. has gradually been expanded to include allmost all of what is now known
  993. as HPGL/1, and most of the commands from HPGL/2.
  994.  
  995.    Not all commands are supported. Among the non-supported commands are
  996. those which do not really apply to a software emulator, like:
  997.  
  998.      commands affecting the communication between plotter and host computer,
  999.      commands for changing the behaviour of a real plotter, like plotting speed etc.,
  1000.      commands for the control of plotter memory allocation,
  1001.      commands causing various plotter display outputs.
  1002.  
  1003.    Other non-supported commands would be desirable, but were left out
  1004. due to their inherent complexity (or just because nobody had an
  1005. immediate need for them yet).
  1006.  
  1007.    Programmers intending to add more HP-GL features should ideally take
  1008. care to implement the less-than-obvious side effects of existing
  1009. commands on the new features, too (and vice versa). E. g., line types
  1010. (`LT;') affect most but not all drawing commands: While the `ER;'
  1011. command (edge rectangle relative) uses the current line type, its
  1012. counterpart `EA;' (edge rectangle absolute) always draws solid lines.
  1013. However, both `PR;' and `PA;' use the current line type! In addition,
  1014. new features may need initializations by the already supported codes
  1015. `IN;' or `DF;', so these may have to be expanded.  So carefully consult
  1016. [1] prior to adding new HP-GL commands.
  1017.  
  1018.    The remainder of this section lists all HP-GL commands given on
  1019. pages 1-2 to 1-4 of [1] and marks them as either
  1020.  
  1021.            `(.)'  not applicable,
  1022.            `(-)'  ignored, or
  1023.            `(+)'  supported.
  1024.  
  1025.    The label "supported" is used when I think the command is fully
  1026. supported in the context of the already implemented commands. In
  1027. general, you should have absolutely no problem with this class of
  1028. commands.
  1029.  
  1030.    Though there still are unsupported commands, this does not mean that
  1031. you might have trouble using `hp2xx'. Nowadays, most HP-GL files are
  1032. machine-generated, e.g. by CAD or DTP programs. These tend to make use
  1033. of just a simple subset of HP-GL. To my experience, chances are high
  1034. that `hp2xx' will give you the picture you want!
  1035.  
  1036.      `HP-GL|s n| Description & Remarks'
  1037.      `Cmd  | i |'
  1038.      `=====|===|========================================================'
  1039.      `AA   |+  | Arc Absolute'
  1040.      `AC   | - | Anchor corner'
  1041.      `AD   | - | Alternate font Definition'
  1042.      `AF   |+  | Advance Full page [same as PG]'
  1043.      `AH   |+  | Advance Half page [same as PG]'
  1044.      `AP   |  .| Automatic pen operations'
  1045.      `AR   |+  | Arc Relative'
  1046.      `AS   |  .| Acceleration select'
  1047.      `AT   |+  | Arc through three points'
  1048.      `-----|---|--------------------------------------------------------'
  1049.      `BF   | - | Buffer Plot [maybe not a valid hpgl command]'
  1050.      `BL   |+  | Buffer Label'
  1051.      `BP   |+  | Begin Plot [same as PG;IN]'
  1052.      `-----|---|--------------------------------------------------------'
  1053.      `CA   |+  | Designate alternate character set'
  1054.      `CC   | - | Character Chord angle'
  1055.      `CF   | - | Character Fill mode'
  1056.      `CI   |+  | Circle'
  1057.      `CM   |  .| Character selection mode'
  1058.      `CO   |+  | File comment'
  1059.      `CP   |+  | Character plot'
  1060.      `CR   | - | Color Range'
  1061.      `CS   |+  | Designate standard character set'
  1062.      `CT   | - | Chord tolerance'
  1063.      `CV   | - | Curved line generator'
  1064.      `-----|---|--------------------------------------------------------'
  1065.      `DC   |  .| Digitize clear'
  1066.      `DF   |+  | Default'
  1067.      `DI   |+  | Absolute direction'
  1068.      `DL   | - | Define downloadable character'
  1069.      `DP   |  .| Digitize point'
  1070.      `DR   |+  | Relative direction'
  1071.      `DS   | - | Designate character into slot'
  1072.      `DT   |+  | Define label terminator'
  1073.      `DV   |+  | text Direction Vertical'
  1074.      `-----|---|--------------------------------------------------------'
  1075.      `EA   |+  | Edge rectangle absolute'
  1076.      `EC   |  .| Enable paper Cutter'
  1077.      `EP   |+  | Edge polygon'
  1078.      `ER   |+  | Edge rectangle relative'
  1079.      `ES   |+  | Extra space'
  1080.      `EW   |+  | Edge wedge'
  1081.      `-----|---|--------------------------------------------------------'
  1082.      `FI   | - | pcl Font ID'
  1083.      `FN   | - | pcl secondary Font Number'
  1084.      `FP   |+  | Fill polygon'
  1085.      `FR   | - | FRame advance'
  1086.      `FS   |  .| Force select'
  1087.      `FT   |+  | Fill type'
  1088.      `-----|---|--------------------------------------------------------'
  1089.      `GC   |  .| Group count'
  1090.      `GM   |  .| Graphics memory'
  1091.      `-----|---|--------------------------------------------------------'
  1092.      `IM   | - | Input error reporting mask'
  1093.      `IN   |+  | Initialize'
  1094.      `IP   |+  | Input P1 and P2'
  1095.      `IR   | - | Input Relative P1 and P2'
  1096.      `IV   | - | Invoke character slot'
  1097.      `IW   |+  | Input window'
  1098.      `-----|---|--------------------------------------------------------'
  1099.      `KY   |  .| Define key'
  1100.      `-----|---|--------------------------------------------------------'
  1101.      `LA   | - | Line Attributes'
  1102.      `LB   |+  | Label'
  1103.      `LO   |+  | Label origin'
  1104.      `LT   |+  | Line type'
  1105.      `-----|---|--------------------------------------------------------'
  1106.      `MC   | - | Merge Control'
  1107.      `MG   |+  | Message [same as WD]'
  1108.      `MT   | . | Media Type'
  1109.      `-----|---|--------------------------------------------------------'
  1110.      `NP   |+  | Number of Pens'
  1111.      `NR   |  .| Not ready (unload page and go offline)'
  1112.      `-----|---|--------------------------------------------------------'
  1113.      `OA   |  .| Output actual position and pen status'
  1114.      `OC   |  .| Output commanded position and pen status'
  1115.      `OD   |  .| Output digitized point and pen status'
  1116.      `OE   | - | Output error'
  1117.      `OF   | - | Output factors'
  1118.      `OG   |  .| Output group count'
  1119.      `OH   | - | Output hard-clip limits'
  1120.      `OI   |  .| Output identification'
  1121.      `OK   |  .| Output key'
  1122.      `OL   | - | Output label length'
  1123.      `OO   |  .| Output options'
  1124.      `OP   |+  | Output P1 and P2'
  1125.      `OS   | - | Output status'
  1126.      `OT   |  .| Output carousel type'
  1127.      `OW   | - | Output window'
  1128.      `-----|---|--------------------------------------------------------'
  1129.      `PA   |+  | Plot absolute'
  1130.      `PB   |+  | Print buffered label'
  1131.      `PC   |+  | Pen Color'
  1132.      `PD   |+  | Pen down'
  1133.      `PE   |+  | Polyline Encoded'
  1134.      `PG   |+  | Page feed'
  1135.      `PR   |+  | Plot relative'
  1136.      `PS   |+  | Plot Size'
  1137.      `PT   |+  | Pen thickness'
  1138.      `PU   |+  | Pen up'
  1139.      `PW   |+  | Pen Width'
  1140.      `-----|---|--------------------------------------------------------'
  1141.      `QL   |  .| Quality Level'
  1142.      `-----|---|--------------------------------------------------------'
  1143.      `RA   |+  | Fill rectangle absolute'
  1144.      `RF   | - | Raster Fill pattern'
  1145.      `RO   |+  | Rotate coordinate system'
  1146.      `RP   | - | Replot'
  1147.      `RR   |+  | Fill rectangle relative'
  1148.      `RT   |+  | Relative arc through Three points'
  1149.      `-----|---|--------------------------------------------------------'
  1150.      `SA   |+  | Select alternate character set'
  1151.      `SB   | - | Scalable or Bitmap font selection'
  1152.      `SC   |+  | Scale'
  1153.      `SD   | - | Standard font attribute Definition'
  1154.      `SI   |+  | Absolute character size'
  1155.      `SL   |+  | Character slant'
  1156.      `SM   |+  | Symbol mode'
  1157.      `SP   |+  | Select pen'
  1158.      `SR   |+  | Relative character size'
  1159.      `SS   |+  | Select standard character set'
  1160.      `ST   |  .| Sort vectors'
  1161.      `SV   | - | Screened Vectors'
  1162.      `-----|---|--------------------------------------------------------'
  1163.      `TD   | - | Transparent Data'
  1164.      `TL   |+  | Tick length'
  1165.      `TR   | - | Transparency mode'
  1166.      `-----|---|--------------------------------------------------------'
  1167.      `UC   |+  | User-defined character'
  1168.      `UF   | - | User-defined fill type'
  1169.      `UL   |+  | User-defined line type'
  1170.      `-----|---|--------------------------------------------------------'
  1171.      `VS   |  .| Velocity select'
  1172.      `-----|---|--------------------------------------------------------'
  1173.      `WD   |+  | Write to display'
  1174.      `WG   |+  | Fill wedge'
  1175.      `WU   |+  | pen Width Unit'
  1176.      `-----|---|--------------------------------------------------------'
  1177.      `XT   |+  | X-Tick'
  1178.      `-----|---|--------------------------------------------------------'
  1179.      `YT   |+  | Y-Tick'
  1180.  
  1181. 
  1182. File: hp2xx.info,  Node: Appendix B,  Next: Appendix C,  Prev: Appendix A,  Up: Top
  1183.  
  1184. Option summary
  1185. **************
  1186.  
  1187. * Menu:
  1188.  
  1189. * General options::
  1190. * Size controls::
  1191. * Raster format controls::
  1192. * PCL specifics::
  1193. * Margins::
  1194. * Preview (DOS only)::
  1195. * Help::
  1196.  
  1197.    In the following, options are grouped into subjects and are listed
  1198. alphabetically within each subject. Both long options and short
  1199. (one-letter) options are listed, where short options appear in
  1200. parentheses. Except for the +DPI option, there is a one-to-one
  1201. correspondence between long and short options. You may use either long
  1202. or short options.  Mixing long and short options is acceptable.
  1203.  
  1204.    Option parameter names suggest the expected data type, e. g.,
  1205. `--rotate (-r) FLOAT' means that option `--rotate' or its corresponding
  1206. short form `-r' expect a parameter of type `float'.
  1207.  
  1208. 
  1209. File: hp2xx.info,  Node: General options,  Next: Size controls,  Up: Appendix B
  1210.  
  1211. General options
  1212. ===============
  1213.  
  1214. `--pencolors (-c) STRING'
  1215.      Pen color(s), a string of 1 to 8 digits.  Valid digits: 0...7
  1216.      (0=Background or off, 1=Foreground, 2=Red, 3=Green, 4=Blue,
  1217.      5=Cyan, 6=Magenta, 7=Yellow). Default: `11111111'
  1218.  
  1219. `--outfile (-f) STRING'
  1220.      Name of output file. If omitted, `hp2xx' generates the name from
  1221.      the input file name and the current mode string. `-f-' causes
  1222.      `hp2xx' to write to `stdout'. Default: none.
  1223.  
  1224. `--logfile (-l) STRING'
  1225.      Name of log file. If given, diagnostics go into this file, else to
  1226.      `stderr'. Remark: `-q' inhibits all diagnostics!
  1227.  
  1228. `--mode (-m) STRING'
  1229.      Mode string. Valid: STRING =
  1230.             `cad'  (TeXcad-compatible line generation using `\special{em:...}'),
  1231.             `em'   (more efficient line drawing with E. Mattes's TeX `\special{em:...}'),
  1232.             `eps'  (Encapsulated PostScript),
  1233.             `hpgl' (simplified HP-GL, useful for imports),
  1234.             `img'  (e.g., GEM's Image format),
  1235.             `mf'   (Metafont source),
  1236.             `pbm'  (Portable Bitmap (monochrome) or Portable Pixmap (color plots)),
  1237.             `pcl'  (HP-PCL Level 3),
  1238.             `pcx'  (Paintbrush format),
  1239.             `png'  (Portable Network Graphics format),
  1240.             `pre'  (Preview mode; no output!),
  1241.             `rgip' (Uniplex RGIP vector format),
  1242.             `tex'  (line drawing with TeX / `epic' macros)
  1243.             `fig'  (for Brian Smith's XFIG vector drawing program)
  1244.             `tiff' (TIFF tagged image file format)
  1245.             `esc2' (Epson Stylus printers)
  1246.  
  1247.      Occasionally available (unsupported) modes:
  1248.             `ilbm' (e.g., for AMIGA: ILBM/IFF format),
  1249.             `pac'  (e.g., for ATARI/STAD),
  1250.             `pic'  (e.g., for ATARI/Signum).
  1251.  
  1252.      Default: `pre'.
  1253.  
  1254. `--pensize (-p) STRING'
  1255.      Pensize(s), a string of 1 to 8 digits.  Valid digits: 0...9 (unit
  1256.      = 1/10 mm) for vector modes, 0...4 (unit = pixel) for raster
  1257.      modes. Default: `11111111'
  1258.  
  1259. `--pages (-P) INT[:[INT]]'
  1260.      Select HP-GL page INT or a page range.  Valid: INT integer and >=
  1261.      0. Default: INT = 0 (all pages).
  1262.  
  1263. `--quiet (-q)'
  1264.      Quiet mode (no diagnostic output).
  1265.  
  1266. `--rotation (-r) FLOAT'
  1267.      Rotation angle [deg]. E.g., `-r90' gives landscape. Default: 0.0
  1268.  
  1269. `--swapfile (-s) STRING'
  1270.      Name of swap file. Default: STRING = `hp2xx.swp'.
  1271.  
  1272. 
  1273. File: hp2xx.info,  Node: Size controls,  Next: Raster format controls,  Prev: General options,  Up: Appendix B
  1274.  
  1275. Size controls
  1276. =============
  1277.  
  1278. `--aspectfactor (-a) FLOAT'
  1279.      Aspect factor. Valid: FLOAT > 0.0. Use FLOAT > 1.0 for landscape
  1280.      and FLOAT < 1.0 for portrait deformations. Default: FLOAT = 1.0
  1281.  
  1282. `--height (-h) FLOAT'
  1283.      (Upper limit of) height of picture in mm. Default: FLOAT=200.0
  1284.  
  1285. `--width (-w) FLOAT'
  1286.      (Upper limit of) width of picture in mm. Default: FLOAT=200.0
  1287.  
  1288. `--x0 (-x) FLOAT'
  1289.      Pre-set left limit of HP-GL coordinate range to FLOAT (rarely
  1290.      used).
  1291.  
  1292. `--x1 (-X) FLOAT'
  1293.      Pre-set right limit of HP-GL coordinate range to FLOAT (rarely
  1294.      used).
  1295.  
  1296. `--y0 (-y) FLOAT'
  1297.      Pre-set lower limit of HP-GL coordinate range to FLOAT (rarely
  1298.      used).
  1299.  
  1300. `--y1 (-Y) FLOAT'
  1301.      Pre-set upper limit of HP-GL coordinate range to FLOAT (rarely
  1302.      used).
  1303.  
  1304. `--truesize (-t)'
  1305.      Ignore options `-a -h -w' (aspect factor, height, width). Size
  1306.      information will come from the HP-GL intrinsic data. WARNING:
  1307.      Avoid using option `-r' (rotate) as it works on top of HP-GL and
  1308.      thus will distort the detected HP-GL sizes.
  1309.  
  1310. 
  1311. File: hp2xx.info,  Node: Raster format controls,  Next: PCL specifics,  Prev: Size controls,  Up: Appendix B
  1312.  
  1313. Raster format controls
  1314. ======================
  1315.  
  1316. `--DPI (-d) INT'
  1317.      Set x resolution to INT dots per inch (DPI). If not overridden by
  1318.      `-D', sets also y resolution to INT DPI.  Valid: INT integer and >
  1319.      0. Default: INT = 75.
  1320.  
  1321. `--DPI_x (-d) INT'
  1322.      Same as `--DPI'
  1323.  
  1324. `--DPI_y (-D) INT'
  1325.      Set y resolution to INT DPI. INT integer and > 0.  Default: INT =
  1326.      75.
  1327.  
  1328. 
  1329. File: hp2xx.info,  Node: PCL specifics,  Next: Margins,  Prev: Raster format controls,  Up: Appendix B
  1330.  
  1331. PCL specifics
  1332. =============
  1333.  
  1334. `--PCL_formfeed (-F)'
  1335.      Send a FormFeed after graphics data. Default: No FormFeed.
  1336.  
  1337. `--PCL_init (-i)'
  1338.      Pre-initialize printer. Default: No pre-init
  1339.  
  1340. `--PCL_Deskjet (-S) INT'
  1341.      Use (Deskjet) Special commands. INT = 0 deactivates this option,
  1342.      INT = 1 enables b/w mode, INT = 3 is intended for DJ500C (CMY)
  1343.      color support, INT = 4 supports DJ550C (CMYK mode).
  1344.  
  1345. `--DPI_x (-d) INT'
  1346.      Set x resolution (see above): Valid here: INT = 75, 100, 150, 300
  1347.  
  1348. `--DPI_y (-D) INT'
  1349.      Set y resolution (see above). Invalid here!
  1350.  
  1351. 
  1352. File: hp2xx.info,  Node: Margins,  Next: Preview (DOS only),  Prev: PCL specifics,  Up: Appendix B
  1353.  
  1354. Margins
  1355. =======
  1356.  
  1357.    (Apply to modes `eps', `pcl', `pre' ONLY)
  1358.  
  1359. `--center (-C)'
  1360.      Center the picture within the frame defined by options `-w -h' by
  1361.      adding to the left or upper margin. Null effect if the width/height
  1362.      ratio of the picture matches that of options `-w -h'.
  1363.  
  1364. `--xoffset (-o) FLOAT'
  1365.      X offset of picture (left  margin) in mm.  Valid: FLOAT >= 0.0,
  1366.      default: FLOAT=0.0
  1367.  
  1368. `--yoffset (-O) FLOAT'
  1369.      Y offset of picture (upper  margin) in mm.  Valid: FLOAT >= 0.0,
  1370.      default: FLOAT=0.0
  1371.  
  1372. 
  1373. File: hp2xx.info,  Node: Preview (DOS only),  Next: Help,  Prev: Margins,  Up: Appendix B
  1374.  
  1375. Preview (DOS/PC's only)
  1376. =======================
  1377.  
  1378. `--VGAmodebyte (-V) INT'
  1379.      VGA mode byte (decimal). Default: INT = 18.  WARNING: Setting
  1380.      inappropriate VGA modes may damage your hardware, especially your
  1381.      monitor!
  1382.  
  1383. 
  1384. File: hp2xx.info,  Node: Help,  Prev: Preview (DOS only),  Up: Appendix B
  1385.  
  1386. Help
  1387. ====
  1388.  
  1389. `--help (-H)'
  1390.      (or calling `hp2xx' without any arguments)  Show on-line help.
  1391.  
  1392. 
  1393. File: hp2xx.info,  Node: Appendix C,  Prev: Appendix B,  Up: Top
  1394.  
  1395.  
  1396.  
  1397. * Menu:
  1398.  
  1399. * Acknowledgement::
  1400. * Copyright note::
  1401.  
  1402. 
  1403. File: hp2xx.info,  Node: Acknowledgement,  Next: Copyright note,  Up: Appendix C
  1404.  
  1405. Acknowledgement
  1406. ===============
  1407.  
  1408.    Since `hp2xx' first became publicly available (in its early days, as
  1409. binaries on several platforms), many people contributed to this project
  1410. by supplying first HWW and now MK with valuable suggestions, code
  1411. patches and reports. Many thanks to all of them!  It is a pleasure to
  1412. especially thank the following people for their outstanding
  1413. contributions:
  1414.  
  1415.    HWW's Versions up to 3.2.0 (mid-1994):
  1416.  
  1417. `Nelson Beebe'
  1418.      Help with the new generic makefile (easier configuration); clean
  1419.      selection mechanism for previewer suggested; suggestions for an
  1420.      improved X.11 previewer
  1421.  
  1422. `Elisabeth Dregger-Cappel'
  1423.      Network and host resources for original `hp2xx' distribution
  1424.  
  1425. `Joern Eggers'
  1426.      New ATARI format "cs" for CS-TeX; bug fixes for arcs / circles
  1427.  
  1428. `Roland Emmerich'
  1429.      DOS betatests and suggestions; `showit'
  1430.  
  1431. `R. Frahm'
  1432.      PCX color improvements
  1433.  
  1434. `Jonathan M. Gillian'
  1435.      DOS betatests and suggestions
  1436.  
  1437. `Gilles Gravier'
  1438.      RGIP converter
  1439.  
  1440. `Thomas Hiller'
  1441.      Code for EA support
  1442.  
  1443. `Claus H. Langhans'
  1444.      AMIGA portation; pbm, ilbm formats
  1445.  
  1446. `Lawrence Lowe'
  1447.      Many helpful suggestions and improvements, e.g. for pcl format
  1448.  
  1449. `Ian MacPhedran'
  1450.      Color / binary format for pbm/ppm
  1451.  
  1452. `Norbert Meyer'
  1453.      ATARI portation; img, pic, pac formats; first ATARI previewer
  1454.  
  1455. `Michael Schmitz'
  1456.      Many VAX & MACH tests
  1457.  
  1458. `Michael Schoene'
  1459.      X11 stuff; many tests
  1460.  
  1461. `Andreas Schwab'
  1462.      Improved ATARI previewer
  1463.  
  1464. `Friedhelm Sowa'
  1465.      Many DOS tests and suggestions for cooperation of `hp2xx' with TeX
  1466.      figure generation
  1467.  
  1468. `Gerhard Steger'
  1469.      Many VAX tests; VAX scripts; access to MicroVAX platforms
  1470.  
  1471. `Horst Szillat'
  1472.      OS/2 support, OS/2 full-screen previewer & help
  1473.  
  1474. `Alois Treindl'
  1475.      Code for UC support
  1476.  
  1477. `Versions since 3.3.0 (mid-1999):'
  1478.  
  1479. `Emmanuel Bigler'
  1480.      xfig and gnuplot ascii support
  1481.  
  1482. `Ian MacPhedran'
  1483.      XFig output
  1484.  
  1485. `Michael Schmitz'
  1486.      PNG output
  1487.  
  1488. `Rolf Schreck'
  1489.      PS/RO fixes
  1490.  
  1491. `Eugene Doudine'
  1492.      PE command support
  1493.  
  1494. `Georgy Salnikov'
  1495.      Improvements for character commands (LB,DI,DR)
  1496.  
  1497. `Michele Liberi'
  1498.      TIFF output
  1499.  
  1500. `Lars Erikson'
  1501.      EPS plotsize bug fixes
  1502.  
  1503. `Gerhard Buergmann'
  1504.      bug fixes for plot scaling and PE support
  1505.  
  1506. `James Shaw'
  1507.      polygon mode testing and examples, WinNT building instructions
  1508.  
  1509. `Andrew Bird'
  1510.      enhanced PW support TIFF enhancements
  1511.  
  1512. 
  1513. File: hp2xx.info,  Node: Copyright note,  Prev: Acknowledgement,  Up: Appendix C
  1514.  
  1515. Copyright notice
  1516. ================
  1517.  
  1518.      Copyright (c) 1998 - 2000  Martin Kroeker
  1519.      Copyright (c) 1991 - 1994  Heinz W. Werntges
  1520.      All rights reserved.
  1521.      
  1522.      Redistribution and use in source and binary forms are permitted provided that
  1523.      the above copyright notice and this paragraph are duplicated in all such forms
  1524.      and that any documentation, advertising materials, and other materials related
  1525.      to such distribution and use acknowledge that the software was developed
  1526.      by the abovementioned author(s).
  1527.      
  1528.      THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS
  1529.      OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION,
  1530.      THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS
  1531.      FOR A PARTICULAR PURPOSE.
  1532.  
  1533.  
  1534. 
  1535. Tag Table:
  1536. Node: Top1347
  1537. Node: Introduction1933
  1538. Node: Invoking hp2xx3017
  1539. Node: HP2XX for the impatient4041
  1540. Node: Basics6789
  1541. Node: Modes of hp2xx7748
  1542. Node: Sizing your output8211
  1543. Node: Pen sizes and colors10533
  1544. Node: Selecting a page (range)13074
  1545. Node: Vector formats14283
  1546. Node: Raster formats15360
  1547. Node: Printer formats16967
  1548. Node: Preview18900
  1549. Node: Misc. options21227
  1550. Node: Advanced subjects22689
  1551. Node: The coordinate range23297
  1552. Node: Fixed scaling25023
  1553. Node: Scaling to true size26696
  1554. Node: Swapping27867
  1555. Node: Dots and lines28570
  1556. Node: Unsupported formats30584
  1557. Node: TeX formats31534
  1558. Node: Installation and modification notes34930
  1559. Node: Installation procedure35302
  1560. Node: Installation of run-time versions35681
  1561. Node: Source-level installation36384
  1562. Node: Modules of hp2xx38374
  1563. Node: Future improvements40660
  1564. Node: Font coding41276
  1565. Node: Appendix A43915
  1566. Node: Appendix B52513
  1567. Node: General options53354
  1568. Node: Size controls55774
  1569. Node: Raster format controls56933
  1570. Node: PCL specifics57421
  1571. Node: Margins58093
  1572. Node: Preview (DOS only)58713
  1573. Node: Help59033
  1574. Node: Appendix C59204
  1575. Node: Acknowledgement59323
  1576. Node: Copyright note61770
  1577. 
  1578. End Tag Table
  1579.